package com.sheng.leetcode.year2022.month11.day11;

import org.junit.Test;

import java.util.Arrays;
import java.util.List;

/**
 * @author liusheng
 * @date 2022/11/11
 *<p>
 * 1704. 判断字符串的两半是否相似<p>
 *<p>
 * 给你一个偶数长度的字符串 s 。将其拆分成长度相同的两半，前一半为 a ，后一半为 b 。<p>
 * 两个字符串 相似 的前提是它们都含有相同数目的元音<p>
 * （'a'，'e'，'i'，'o'，'u'，'A'，'E'，'I'，'O'，'U'）。注意，s 可能同时含有大写和小写字母。<p>
 * 如果 a 和 b 相似，返回 true ；否则，返回 false 。<p>
 *<p>
 * 示例 1：<p>
 * 输入：s = "book"<p>
 * 输出：true<p>
 * 解释：a = "bo" 且 b = "ok" 。a 中有 1 个元音，b 也有 1 个元音。所以，a 和 b 相似。<p>
 *<p>
 * 示例 2：<p>
 * 输入：s = "textbook"<p>
 * 输出：false<p>
 * 解释：a = "text" 且 b = "book" 。a 中有 1 个元音，b 中有 2 个元音。因此，a 和 b 不相似。<p>
 * 注意，元音 o 在 b 中出现两次，记为 2 个。<p>
 *<p>
 * 提示：<p>
 * 2 <= s.length <= 1000<p>
 * s.length 是偶数<p>
 * s 由 大写和小写 字母组成<p>
 */
public class LeetCode1704 {

    @Test
    public void test01() {
//        String s = "book";
        String s = "textbook";
        System.out.println(new Solution().halvesAreAlike(s));
    }
}
class Solution {
    List<Character> list = Arrays.asList('a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U');
    public boolean halvesAreAlike(String s) {
        String s1 = s.substring(0, s.length() / 2);
        String s2 = s.substring(s.length() / 2);
        return getVowelNum(s1).equals(getVowelNum(s2));
    }

    public Integer getVowelNum(String s) {
        int count = 0;
        for (int i = 0; i < s.length(); i++) {
            if (list.contains(s.charAt(i))) {
                count++;
            }
        }
        return count;
    }
}
